/****************************************************
 * Description: DAO for 角色
 * Copyright:   Copyright (c) 2013
 * Company:     beiwaionline
 * @author      bfsu
 * @version     1.0
 * @see
	HISTORY
    *  2013-08-08 bfsu Create File
**************************************************/

package com.bfsuolframework.security.dao;

import java.util.List;

import com.bfsuolframework.security.entity.Role;
import com.bfsuolframework.core.controller.support.Pagination;
import com.bfsuolframework.core.dao.DAO;

public interface RoleDAO extends DAO<Role> {
	
    /**
     * 通过 用户主键 查询 角色
     * @param 用户主键
     * @return 角色 集合
     */
    public List<Role> findRolesByUserId(Long userId);

	/**
	 * 按roleName模糊查询不再用户组（groupId）里的所有角色，带分页
	 * @param groupId
	 * @param roleName
	 * @return
	 */
	public Pagination findRolesNotInGroup(Long groupId, String roleName, Pagination page);

	/**
	 * 校验角色代码是否唯一
	 * @param code
	 * @return
	 */
	public boolean checkCode(Role role);
	
	/**
	 * 检验是否有关联的用户
	 * @param id
	 * @return
	 */
	public boolean checkUsers(Long id);
	
	/**
	 * 检验是否有关联的用户组
	 * @param id
	 * @return
	 */
	public boolean checkGroups(Long id);
	
	/**
	 * 检验是否有关联的权限
	 * @param id
	 * @return
	 */
	public boolean checkPris(Long id);
	/**
	 * 根据角色编码获取角色
	 * @param roleCode 角色编码
	 * @return
	 */
	public Role getByCode(String roleCode);

}
